#pragma once
#include "Fysics/System/Window.h"
#include "OpenGLContext.h"

namespace Fysics
{
	class OpenGLWindow : public Window
	{
	private:
		GLFWwindow* m_Window;
		WindowProps m_Props;

		GraphicsContext* m_Context;
		
	public:
		OpenGLWindow(const WindowProps& props);
		virtual ~OpenGLWindow();

		virtual void OnUpdate() override;
		virtual void GetEvents() override;
		virtual unsigned int GetWidth() const override { return m_Props.width; }
		virtual unsigned int GetHeight() const override { return m_Props.height; }
		virtual void* GetNativeWindow() const override { return m_Window; }

		virtual bool IsVSync() const override;
		virtual void SetVSync(bool enabled) override;

		virtual double GetCurrentTime() override;
	};
}